import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
  // 严格模式 只有mutation才能改变状态
  // 不要在发布环境下启用严格模式！严格模式会深度监测状态树来检测不合规的状态变更——请确保在发布环境下关闭严格模式，以避免性能损失。
  strict: process.env.NODE_ENV !== 'production',
  state: { // 数据，相当于data
    token: '',
    userInfo: null,
    currentYear: '2023'
  },
  getters: {
  },
  mutations: {
    // 里面定义方法，操作state方发
    setToken (state, token) {
      state.token = token
    },

    //设置currentYear
    setYear (state, year) {
      state.currentYear = year
    },

    // 设置data
    setUserInfo (state, data) {
      state.userInfo = data
    },
  },
  actions: {
    // 操作异步操作mutation
    // remove token
    resetToken ({ commit }) {
      return new Promise(resolve => {
        // removeToken() // must remove  token  first
        commit('setToken', '')
        commit('setUserInfo', null)
        resolve()
      })
    }
  },
  modules: {
  }
})